package com.wyzz.hr.pojo.base;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.UUID;

import com.wyzz.hr.pojo.Department;
import com.wyzz.hr.pojo.Employee;
import com.wyzz.hr.pojo.Location;
import com.wyzz.hr.pojo.Overtimerequest;
import com.wyzz.hr.pojo.Overtimetype;

public abstract class BaseOvertimerequest implements Serializable {

	public BaseOvertimerequest() {
		hashCode = 0x80000000;
		initialize();
	}

	public BaseOvertimerequest(String orId) {
		hashCode = 0x80000000;
		setOrId(orId);
		initialize();
	}

	public BaseOvertimerequest(String orId, Overtimetype orOtNo,
			Department orEmpDept, Employee orEmpNo, Location orEmpLocationNo,
			Integer orNo, String orReason, Date orStartDateApply,
			Date orEndDateApply, BigDecimal orTotalHoursApply,
			Date orStartDate, Date orEndDate, BigDecimal orTotalHours,
			Integer orStatus, Date orCreateTime, Date orLastChangeTime) {
		hashCode = 0x80000000;
		setOrId(orId);
		setOrOtNo(orOtNo);
		setOrEmpDept(orEmpDept);
		setOrEmpNo(orEmpNo);
		setOrEmpLocationNo(orEmpLocationNo);
		setOrNo(orNo);
		setOrReason(orReason);
		setOrStartDateApply(orStartDateApply);
		setOrEndDateApply(orEndDateApply);
		setOrTotalHoursApply(orTotalHoursApply);
		setOrStartDate(orStartDate);
		setOrEndDate(orEndDate);
		setOrTotalHours(orTotalHours);
		setOrStatus(orStatus);
		setOrCreateTime(orCreateTime);
		setOrLastChangeTime(orLastChangeTime);
		initialize();
	}

	protected void initialize() {
		orSecurityNo = UUID.randomUUID().toString();
	}

	public String getOrId() {
		return orId;
	}

	public void setOrId(String orId) {
		this.orId = orId;
		hashCode = 0x80000000;
	}

	public Integer getOrNo() {
		return orNo;
	}

	public void setOrNo(Integer orNo) {
		this.orNo = orNo;
	}

	public String getOrReason() {
		return orReason;
	}

	public void setOrReason(String orReason) {
		this.orReason = orReason;
	}

	public Date getOrStartDate() {
		return orStartDate;
	}

	public void setOrStartDate(Date orStartDate) {
		this.orStartDate = orStartDate;
	}

	public Date getOrEndDate() {
		return orEndDate;
	}

	public void setOrEndDate(Date orEndDate) {
		this.orEndDate = orEndDate;
	}

	public BigDecimal getOrTotalHours() {
		return orTotalHours;
	}

	public void setOrTotalHours(BigDecimal orTotalHours) {
		this.orTotalHours = orTotalHours;
	}

	public BigDecimal getOrTiaoxiuHoursRemain() {
		return orTiaoxiuHoursRemain;
	}

	public void setOrTiaoxiuHoursRemain(BigDecimal orTiaoxiuHoursRemain) {
		this.orTiaoxiuHoursRemain = orTiaoxiuHoursRemain;
	}

	public Integer getOrStatus() {
		return orStatus;
	}

	public void setOrStatus(Integer orStatus) {
		this.orStatus = orStatus;
	}

	public Date getOrCreateTime() {
		return orCreateTime;
	}

	public void setOrCreateTime(Date orCreateTime) {
		this.orCreateTime = orCreateTime;
	}

	public Date getOrLastChangeTime() {
		return orLastChangeTime;
	}

	public void setOrLastChangeTime(Date orLastChangeTime) {
		this.orLastChangeTime = orLastChangeTime;
	}

	public Employee getOrCreateBy() {
		return orCreateBy;
	}

	public void setOrCreateBy(Employee orCreateBy) {
		this.orCreateBy = orCreateBy;
	}

	public Overtimetype getOrOtNo() {
		return orOtNo;
	}

	public void setOrOtNo(Overtimetype orOtNo) {
		this.orOtNo = orOtNo;
	}

	public Employee getOrLastChangeBy() {
		return orLastChangeBy;
	}

	public void setOrLastChangeBy(Employee orLastChangeBy) {
		this.orLastChangeBy = orLastChangeBy;
	}

	public Department getOrEmpDept() {
		return orEmpDept;
	}

	public void setOrEmpDept(Department orEmpDept) {
		this.orEmpDept = orEmpDept;
	}

	public Employee getOrEmpNo() {
		return orEmpNo;
	}

	public void setOrEmpNo(Employee orEmpNo) {
		this.orEmpNo = orEmpNo;
	}

	public Location getOrEmpLocationNo() {
		return orEmpLocationNo;
	}

	public void setOrEmpLocationNo(Location orEmpLocationNo) {
		this.orEmpLocationNo = orEmpLocationNo;
	}

	public boolean equals(Object obj) {
		if (null == obj)
			return false;
		if (!(obj instanceof Overtimerequest))
			return false;
		Overtimerequest overtimerequest = (Overtimerequest) obj;
		if (null == getOrId() || null == overtimerequest.getOrId())
			return false;
		else
			return getOrId().equals(overtimerequest.getOrId());
	}

	public int hashCode() {
		if (0x80000000 == hashCode) {
			if (null == getOrId())
				return super.hashCode();
			String hashStr = (new StringBuilder()).append(getClass().getName())
					.append(":").append(getOrId().hashCode()).toString();
			hashCode = hashStr.hashCode();
		}
		return hashCode;
	}

	public String toString() {
		return super.toString();
	}

	public String getOrNextApprover() {
		return orNextApprover;
	}

	public void setOrNextApprover(String orNextApprover) {
		this.orNextApprover = orNextApprover;
	}

	public BigDecimal getOrTiaoxiuHours() {
		return orTiaoxiuHours;
	}

	public void setOrTiaoxiuHours(BigDecimal orTiaoxiuHours) {
		this.orTiaoxiuHours = orTiaoxiuHours;
	}

	public String getOrSecurityNo() {
		return orSecurityNo;
	}

	public void setOrSecurityNo(String orSecurityNo) {
		this.orSecurityNo = orSecurityNo;
	}

	public Date getOrTiaoxiuExpire() {
		return orTiaoxiuExpire;
	}

	public void setOrTiaoxiuExpire(Date orTiaoxiuExpire) {
		this.orTiaoxiuExpire = orTiaoxiuExpire;
	}

	public Date getOrStartDateApply() {
		return orStartDateApply;
	}

	public void setOrStartDateApply(Date orStartDateApply) {
		this.orStartDateApply = orStartDateApply;
	}

	public Date getOrEndDateApply() {
		return orEndDateApply;
	}

	public void setOrEndDateApply(Date orEndDateApply) {
		this.orEndDateApply = orEndDateApply;
	}

	public BigDecimal getOrTotalHoursApply() {
		return orTotalHoursApply;
	}

	public void setOrTotalHoursApply(BigDecimal orTotalHoursApply) {
		this.orTotalHoursApply = orTotalHoursApply;
	}

	public Date getOrShiftDate() {
		return orShiftDate;
	}

	public void setOrShiftDate(Date orShiftDate) {
		this.orShiftDate = orShiftDate;
	}

	public static String REF = "Overtimerequest";
	public static String PROP_OR_EMP_DEPT = "orEmpDept";
	public static String PROP_OR_REASON = "orReason";
	public static String PROP_OR_EMP_LOCATION_NO = "orEmpLocationNo";
	public static String PROP_OR_END_DATE = "orEndDate";
	public static String PROP_OR_START_DATE = "orStartDate";
	public static String PROP_OR_LAST_CHANGE_TIME = "orLastChangeTime";
	public static String PROP_OR_CREATE_BY = "orCreateBy";
	public static String PROP_OR_CREATE_TIME = "orCreateTime";
	public static String PROP_OR_ID = "orId";
	public static String PROP_OR_EMP_NO = "orEmpNo";
	public static String PROP_OR_NO = "orNo";
	public static String PROP_OR_TOTAL_HOURS = "orTotalHours";
	public static String PROP_OR_NEXT_APPROVER = "orNextApprover";
	public static String PROP_OR_STATUS = "orStatus";
	public static String PROP_OR_OT_NO = "orOtNo";
	public static String PROP_OR_LAST_CHANGE_BY = "orLastChangeBy";
	public static String PROP_OR_TIAOXIU_HOURS = "orTiaoxiuHours";
	public static String PROP_OR_TIAOXIE_HOURS_REMAIN = "orTiaoxiuHoursRemain";
	public static String PROP_OR_TIAOXIU_EXPIRE = "orTiaoxiuExpire";
	public static String PROP_OR_SECURITY_NO = "orSecurityNo";
	public static String PROP_OR_START_DATE_APPLY = "orStartDateApply";
	public static String PROP_OR_END_DATE_APPLY = "orEndDateApply";
	public static String PROP_OR_TOTAL_HOURS_APPLY = "orTotalHoursApply";
	public static String PROP_OR_SHIFT_DATE = "orShiftDate";
	private int hashCode;
	private String orId;
	private Integer orNo;
	private String orReason;
	private Date orShiftDate;
	private Date orStartDateApply;
	private Date orEndDateApply;
	private BigDecimal orTotalHoursApply;
	private Date orStartDate;
	private Date orEndDate;
	private BigDecimal orTotalHours;
	private BigDecimal orTiaoxiuHours;
	private BigDecimal orTiaoxiuHoursRemain;
	private Date orTiaoxiuExpire;
	private Integer orStatus;
	private Date orCreateTime;
	private Date orLastChangeTime;
	private String orNextApprover;
	private String orSecurityNo;
	private Employee orCreateBy;
	private Overtimetype orOtNo;
	private Employee orLastChangeBy;
	private Department orEmpDept;
	private Employee orEmpNo;
	private Location orEmpLocationNo;

}
